package com.gxuwz.lhq.list;

import org.junit.Test;

import java.util.Optional;

public class StringApi {
    /**
     * Optional 加强
     */
    @Test
    public void testOptional(){

        //如果存在值，则返回值，否则引发NoSuchElementException异常。
        String s = Optional.of("java study").orElseThrow();
        System.out.println(s);

        //stream():如果值存在，则返回仅包含该值的顺序流，否则返回空流。
        long count = Optional.of("java study").stream().count();

        System.out.println(count);
/**
 *         ofNullable： 返回描述给定值的OPTIONAL，如果非空，则返回空OPTIONAL
 *         or():如果值存在，则返回描述该值的可选参数，否则返回由提供函数生成的可选参数。
 *         get():如果存在值，则返回值，否则引发NoSuchElementException异常。
 */
        Object javastack = Optional.ofNullable(null)
                .or(() -> Optional.of("javastack"))
                .get();
        System.out.println(javastack);

    }

    /**
     * 增加了一系列的字符串处理方法
     */
    @Test
    public void testString(){

        // 判断字符串是否为空白
        System.out.println("".isBlank());

        // 去除首尾空白
        System.out.println(" Javastack   ".strip());
        // 去除尾部空格
        System.out.println(" Javastack   ".stripTrailing());
        // 去除首部空格
        System.out.println(" Javastack   ".stripLeading());
        // 复制字符串
        System.out.println("Javastack".repeat(3));
        // 行数统计
        System.out.println("Javastack".lines().count());



    }
}
